package br.com.sms.teste;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.junit.Assert;
import org.junit.Test;

import br.com.sms.dominio.Cidade;
import br.com.sms.dominio.Cliente;
import br.com.sms.dominio.Destinatario;
import br.com.sms.dominio.Funcionalidade;
import br.com.sms.dominio.Perfil;
import br.com.sms.dominio.Telefone;
import br.com.sms.dominio.Usuario;
import br.com.sms.dto.ClienteDTO;
import br.com.sms.enuns.Situacao;
import br.com.sms.enuns.TipoFuncionalidade;
import br.com.sms.util.DataUtil;

public class TesteDestinatario extends TesteBase{

	@Test
	public void salvarDestinatario(){
		Cliente cliente = UtilTeste.utilCriarCliente();
		
		Telefone tel = new Telefone();
		tel.setNumero("9234-0987");
		
		Set<Telefone> listaTelefone = new HashSet<Telefone>();
		
		Destinatario dest = new Destinatario();
		dest.setCep("73025060");
		dest.setNome("Paulo Mota");
		dest.setTelefones(listaTelefone);
		dest.setCliente(cliente);
		
		Destinatario destSalvo = getDestinatarioFacade().salvar(dest);
		
		Assert.assertNotNull(destSalvo);
	}
	
	@Test
	public void salvarUsuario(){

		Cidade cidade = new Cidade("Brasilia", "DF");
		
		Cliente cliente = new Cliente();
		cliente.setNome("SMART");
		ClienteDTO dto = new ClienteDTO();
		dto.setCliente(cliente);
		dto.setCidade(cidade.getNome());
		dto.setUf(cidade.getUf());
		Cliente clienteSalvo = getClienteFacade().salvar(dto);
		
		List<Integer> marcados = new ArrayList<Integer>();
		marcados.add(TipoFuncionalidade.ADMIN_GERAL.getCodigo());
		Perfil perfil = new Perfil();
		perfil.setDescricao("Criador do sistema");
		perfil.setFuncionalidades(new ArrayList<Funcionalidade>());
		perfil.setCliente(clienteSalvo);
		perfil = getPerfilFacade().salvar(perfil, marcados);

		
		Usuario usr = new Usuario();
			
		usr.setNomeUsuario("Laurindo");
		usr.setLogin("admin");
		usr.setSenha("admin");
		usr.setSituacao(Situacao.ATIVO);
		usr.setCliente(clienteSalvo);
		usr.setDataNascimento(DataUtil.getData("12/05/2009"));
		usr.setDataCadastro(new Date());
		usr.setPerfil(perfil);
		getUsuarioFacade().salvarUsuario(usr);
	}
}
